package ca.etsmtl.log720.lab1;
import java.lang.*;
import java.util.ArrayList;

public class BanqueInfractionsImpl extends BanqueInfractionsPOA {

	private CollectionInfractionImpl infractions;
	private int currentid = 0;
	
	public BanqueInfractionsImpl()
	{
		infractions = new CollectionInfractionImpl();
	}
	
	public CollectionInfraction infractions()
	{
		try {
			/*
			// Récupérer le POA crée dans le serveur
			POA rootpoa = Server._poa; //TOCHECK

			// Activer l'objet et retourne l'objet CORBA
			org.omg.CORBA.Object obj = rootpoa
					.servant_to_reference(infractions);

			return CollectionInfractionHelper.narrow(obj);
			*/
			return null; //TODO
		} catch (Exception e) {
			System.out.println("Erreur retour de l'objet CollectionInfraction : "	+ e);
			return null;
		}
	}
	
	public Infraction trouverInfractionParId(int idInfraction)
	{
		if(infractions.getListeInfraction().size()<idInfraction)
			return null;
		InfractionImpl infractionRetour = infractions.getListeInfraction().get(idInfraction);
		
		try{
			/*
			// R�cup�rer le POA cr�� dans le serveur
			POA rootpoa = Server._poa; //TOCHECK
	
			// Activer l'objet et retourne l'objet CORBA
			org.omg.CORBA.Object obj = rootpoa
					.servant_to_reference(infractionRetour);
	
			return InfractionHelper.narrow(obj);
			*/
			return null; //TODO
		} catch (Exception e) {
			System.out.println("Erreur retour de l'objet  : Infraction "	+ e);
			return null;
		}
	}
	
	public CollectionInfraction trouverInfractionsParDossier(Dossier mydossier)
	{
		CollectionInfractionImpl infractionsRetour = new CollectionInfractionImpl();
		
		int i=0;
		while( mydossier.getListeInfraction()[i]> 0)
		{
			infractionsRetour.getListeInfraction().add(infractions.getListeInfraction().get(mydossier.getListeInfraction()[i])) ;
		}
		try{
			/*
			// R�cup�rer le POA cr�� dans le serveur
			POA rootpoa = Server._poa; //TOCHECK
	
			// Activer l'objet et retourne l'objet CORBA
			org.omg.CORBA.Object obj = rootpoa
					.servant_to_reference(infractionsRetour);

			return CollectionInfractionHelper.narrow(obj);
			*/
			return null; //TODO
		} catch (Exception e) {
			System.out.println("Erreur retour de l'objet  : Collection Infraction "	+ e);
			return null;
		}
	}
	
	public void ajouterInfraction(String description, int niveau)
	{
		InfractionImpl infraction = new InfractionImpl(currentid++, description, niveau);
		infractions.getListeInfraction().add(infraction);
	}

}
  